// src/api/project.js
import request from '@/utils/request'

/**
 * 分页查询项目（带条件查询）
 * @param {Object} params - 查询参数（包含 pageNum、pageSize 以及查询条件 DTO）
 */
export function getProjectPage(params) {
    return request({
        url: '/project/page',
        method: 'post', // 需要传 DTO 查询条件，推荐 POST
        params: { pageNum: params.pageNum, pageSize: params.pageSize },
        data: params.filters // 这里 filters 就是 ProjectDTO 对象
    })
}

/**
 * 获取项目详情
 * @param {Number} id - 项目ID
 */
export function getProjectById(id) {
    return request({
        url: `/project/${id}`,
        method: 'get'
    })
}

/**
 * 保存项目：含新增项目（不包含id）和更新项目（包含id）
 * @param {Object} data - Project 对象
 */
export function saveProject(data) {
    return request({
        url: '/project',
        method: 'post',
        data
    })
}

/**
 * 批量新增项目
 * @param {Array} projects - Project 对象数组
 */
export function saveProjectBatch(projects) {
    return request({
        url: '/project/batch',
        method: 'post',
        data: projects
    })
}

/**
 * 删除项目
 * @param {Number} id - 项目ID
 */
export function deleteProject(id) {
    return request({
        url: `/project/${id}`,
        method: 'delete'
    })
}

/**
 * 批量删除项目
 * @param {Array<Number>} ids - 项目ID数组
 */
export function deleteProjectBatch(ids) {
    return request({
        url: '/project/del/batch',
        method: 'post',
        data: ids
    })
}

/**
 * 获取所有项目（不分页）
 */
export function getAllProjects() {
    return request({
        url: '/project',
        method: 'get'
    })
}